﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Cars;

namespace lab5
{
    public partial class Form1 : Form
    {
        int length = 0;
        TextBox[] myTextBox = new TextBox[9];
        int[] textBoxNum = { 4, 5, 6, 7, 8 };
        Cars.Cars.Model[] car = new Cars.Cars.Model[128];


        public Form1()
        {
            InitializeComponent();
        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            bool enable = true;
            int val = 0;
            int[] res = new Int32[5];

            for (int i = 0; i < 9; ++i)
            {
                if ((myTextBox[i].TextLength == 0) && (i != 6))
                {
                    enable = false;
                    MessageBox.Show("Одно из полей осталось незаполненным.", "Ошибка");
                    break;
                }

                if (i == textBoxNum[val])
                {
                    if (!Int32.TryParse(myTextBox[textBoxNum[val]].Text, out res[val]))
                    {
                        enable = false;
                        MessageBox.Show("Одно из полей имеет недопустимое значение", "Ошибка");
                        break;
                    }
                    ++val;
                }
            }

            if (enable)
            {
                car[length] = Cars.Cars.ProductFactory.CreateModel(2, myTextBox[0].Text, myTextBox[1].Text, myTextBox[2].Text, res[0], Convert.ToInt32(myTextBox[4].Text), res[2], res[3], res[4], myTextBox[8].Text);
                dataGridView1.Rows.Add(myTextBox[0].Text, myTextBox[1].Text, myTextBox[2].Text, myTextBox[3].Text, myTextBox[4].Text, myTextBox[5].Text, myTextBox[6].Text, myTextBox[7].Text, myTextBox[8].Text);
                length++;

                for (int j = 0; j < 9; ++j)
                {
                    myTextBox[j].Clear();
                }
            }
        }

        private void Form1_Load_1(object sender, EventArgs e)
        {
            myTextBox[0] = textBox1;
            myTextBox[1] = textBox2;

            myTextBox[2] = textBox3;
            myTextBox[3] = textBox4;
            myTextBox[4] = textBox5;

            myTextBox[5] = textBox6;
            myTextBox[6] = textBox7;
            myTextBox[7] = textBox8;
            myTextBox[8] = textBox9;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (length > 0)
            {
                Cars.Cars.CalculatePrice calc = new Cars.Cars.CalculatePrice();

                int value = calc.GetTotalPrice(car, length);
                MessageBox.Show("Общая стоимость автопарка: " + value, "Общая стоимость");
            }

            else
            {
                MessageBox.Show("Не было добавлено ни одной машины", "Ошибка");
            }
        }
    }
}
